import {defineStore} from "pinia";
import axios from "axios";
import {nanoid} from "nanoid";

//选项式写法
// export const useTalkStore = defineStore('talk',{
//     actions:{
//         async getATalk(){
//                 //发请求
//                 //连续解构赋值+重命名
//                 let {data:{content:title}} = await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')
//                 //把请求回来的字符串包装成一个对象
//                 let obj = {id:nanoid(),title}
//                 //放到数组中
//                 this.talkList.unshift(obj)
//             }
//         },
//     state(){
//         return {
//             talkList:JSON.parse(localStorage.getItem('talk') as string) || [] //如果是空就[].unshift()
//         }
//     }
// })
import {reactive} from "vue";
//组合式写法
export const useTalkStore = defineStore('talk',()=>{    //第二个参数是一个函数，返回需要的数据和方法
    //talkList相当于state
    const talkList = reactive(JSON.parse(localStorage.getItem('talk') as string) || []) //如果是空就[].unshift()
    //getATalk函数相当于action
    async function getATalk(){
        //发请求
        //连续解构赋值+重命名
        let {data:{content:title}} = await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')
        //把请求回来的字符串包装成一个对象
        let obj = {id:nanoid(),title}
        //放到数组中
        talkList.unshift(obj)
    }
    return {talkList,getATalk}
})